# -*- coding: utf-8 -*-
"""
Created on Sun Aug 13 10:51:32 2023

@author: skunk69
"""

import json

chinese_name = u'焦虑自评量表'
english_name = 'Self-Rating Anxiety Scale'
abbreviation = 'SAS'
category = u'精神病学临床量表'

outline = u"""焦虑自评量表（Self-Rating Anxiety Scale, SAS）由W. K. Zung于1971年编制。从量表的构造形式到具体评定方法，都与抑郁自评量表（SDS）十分相似，用于评定受试者焦虑的主观感受。"""

instruction = u"""请仔细阅读每一条，把题目的意思看明白，然后按照自己最近一周以来的实际情况，对下面的20个条目按“没有或很少时间”、“少部分时间”、“相当多时间”、“绝大部分时间或全部时间”四个等级评分。"""

with open('SAS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = [5,9,13,17,19]
scales = []
scales_items = []
factors = []
factors_scales = []
rating = [u'没有或很少时间有',u'小部分时间有',u'相当多时间',u'绝大部分或全部时间']
score_rules = list(range(1,5))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《焦虑自评量表》属于一个自评量表。本量表可以评定焦虑症状的轻重程度及其在治疗中的变化，适用于具有焦虑症状的成年人。主要用于疗效评估，不能用于诊断。"""

reliability = u"""在对中学生样本测试中得到的相关系数为0.696，间隔一个月的重测相关系数为0.777，P<0.01。"""
validity = u"""国内对神经症患者样本进行SAS自评，同时由医师使用HAMA量表做评价，研究结果表明，两个量表总分用Pearson相关法获得的相关系数为0.365，Spearman等级相关法的相关系数为0.341，表明SAS效度尚好。
根据被试学生SAS的测试资料，对20个条目进行了因子分析，分析揭示20个条目可概括为4个因子。4个因子主要反映了焦虑心情、植物神经功能紊乱及运动性紧张3方面。
"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，然后将所有条目得分相加得到总分。标准总分=int（1.25X原始总分）。总分越高，提示焦虑程度越重。
按照中国常模结果，SAS标准总分的分界值为50分，其中50～59分为轻度焦虑，60～69分为中度焦虑，69分以上为重度焦虑。"""

applications = u"""1986年全国量表协作组对该量表的常模测试过程中发现，其中的反向评分条目不易为国内人掌握，影响了该量表的准确性，因而协作组将其修改为正评题。对神经症患者的测试研究得出该量表的信度和效度较好。
由于焦虑是神经症的共同症状，故SAS在各类神经症鉴别中作用不大。关于焦虑症状的临床分级，除参考量表分值外，主要还应根据临床症状特别是要害症状的程度来划分，量表总分值仅能作为一项辨指标而非绝对标准。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)